package com.javasm.demo;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @classname:Lucky
 * @description:
 * @author: Lisa
 * @date: 2020/11/28 14:43
 * @version: 0.1
 * @since:1.8
 */
public class Lucky {


    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        boolean registerFlag = false;//注册标识
        boolean loginFlag = false;//是否登录成功标识

        String answer;
        do {
            System.out.println("*****欢迎进入幸运抽奖系统*****");
            System.out.println("           1.注册");
            System.out.println("           2.登录");
            System.out.println("           3.抽奖");
            System.out.println("****************************");
            System.out.print("请选择菜单： ");
            int choice = input.nextInt();
            switch (choice) {
                case 1:
                    registerFlag = userRegister(input);
                    break;
                case 2:
                    loginFlag = userLogin(input, registerFlag);
                    break;
                case 3:
                    userLucky(input, loginFlag);
                    break;
            }

            System.out.println("是否继续: y/n");
            answer = input.next();
        } while ("y".equals(answer));

        System.out.println("程序退出");
        input.close();
    }

    public static void userLucky(Scanner input, boolean loginFlag) {
        if (input == null) {
            return;
        }
        if (!loginFlag) {
            System.out.println("需要先执行登录功能");
            return;
        }
        //执行抽奖逻辑
        System.out.println("请录入会员卡号:");
        int cardNo = input.nextInt();

        int[] nums = new int[5];
        for (int i = 0; i < 5; i++) {
            nums[i] = (int) (Math.random() * 9000 + 1000);
        }

        System.out.println("本日幸运数字:" + Arrays.toString(nums));
        for (int num : nums) {
            if (num == cardNo) {
                System.out.println(cardNo + "是幸运会员");
                return;
            }
        }
        System.out.println(cardNo + "不是幸运会员");
    }

    public static boolean userLogin(Scanner input, boolean registerFlag) {
        //不需要重复登录
        //是否执行切换账号

        //执行登录功能  判断之前有没有注册成功
        if (input == null) {
            return false;
        }
        //在登录方法里面  获得注册时候返回的数据 true
        if (!registerFlag) {
            System.out.println("需要先执行注册功能");
            return false;
        }
        //数据比对: 登录时候录入的数据要与注册时候 的数据比较
        int count = 3;
        do {
            count--;
            System.out.println("请录入登录时候用户名:");
            String loginName = input.next();
            System.out.println("请录入登录时候密码:");
            String loginPass = input.next();
            if (!loginName.equals(username) || !loginPass.equals(password)) {
                System.out.println("用户名或者密码不符，还剩下" + count + "次机会");
            } else {
                System.out.println("登录成功，欢迎你:" + username);
                return true;
            }
        } while (count > 0);

        return false;
        //在一个方法里面访问到另外一个方法里面变量
        //1. 形参(在另外一个文件中 )
        //2. 全局变量(多个方法在一个文件中 class )
    }
//
//    String[] usernameArray;
//    String[] passwordArray;

    //所有的方法都是static  全局变量static
    //[访问权限修饰符] [普通修饰符] 数据类型 变量 [= 数据];
    public static String username;//null
    public static String password;//null

    public static boolean userRegister(Scanner input) {
        if (input == null) {
            return false;
        }
        //在userRegister里面要是main里面input变量
        // (使用数组维护: 所有的用户注册信息  维护起来 )
        // 保证用户名唯一

        System.out.println("请录入注册时候用户名:");
        username = input.next();
        System.out.println("请录入注册时候密码:");
        password = input.next();

        System.out.println("注册成功  请牢记会员卡号");
        //随机的4位数: 1000-10000
        int cardNo = (int) (Math.random() * 9000 + 1000);//0.0-1.0

        System.out.println("用户名\t密码\t会员卡号");
        System.out.println(username + "\t" + password + "\t" + cardNo);

        //并修改注册标识为true
        return true;
    }

}
